With the proliferation of light-emitting-diode (LED) lamps, as well as other types of lamps, there are many applications which include dimming the lamps and changing the color of the lamps. For example, it is often desirable for LED lamps in residential and commercial applications to be dimmable. Additionally, it may be desirable for LED lamps to have the capability to change colors when used in instrumentation, user interface displays, and other information-related applications. Further, display screens for information or entertainment applications make use of LED lamps that dim and/or change colors.
Changing the color of a lamp instantaneously can be unpleasant to a viewer in some instances. However, changing the color of a lamp in an aesthetically pleasing and smooth manner can be a challenge. Some software solutions have been used that run on microcontrollers, state machines, and the like. For example, a timed interrupt service routine may be employed that varies the intensities of component colors of the lamp in a defined manner. Like many hardware solution counterparts, these software routines may either provide rough rather than smooth color transitions or they can result in unaesthetic transition colors. In some instances, more complex software routines can be used to provide smoother color transitions, but these complex routines generally result in an undesirably high processing load.